package test.demos.redislock.pojo;


public interface DistributionLock {

    /**
     * 加锁成功 返回加锁时间（带阻塞）
     * @param lockKey
     * @return
     */
    public Long lock(String lockKey);
    
    /**
     * 加锁成功 返回加锁时间(不阻塞)
     * @param lockKey
     * @return 返回null获得锁失败
     */
    public Long tryLock(String lockKey);


    /**
     * 解锁 通过超时时间和线程哈希码进行定向解锁
     * @param lockKey
     * @param lockvalue
     */
    public void unlock(String lockKey, long lockvalue);
}